package visitor;

import arbore.Nod;
import functii_elementare.*;
import functii_trigonometrice.*;
import operator.*;

public class ToStringVisitor extends Visitor{
	protected String s;

	public ToStringVisitor() {
		super();
		this.s="";
	}

	public ToStringVisitor(String s) {
		super();
		this.s = s;
	}
	
	public void vizit(Plus p)
	{
		if(p.getfStang()!= null && p.getfDrept()!= null)
		{
			visit(p.getfStang());
			String s1=this.s;
			visit(p.getfDrept());
			String s2=this.s;
			s=p.concatTermeni(s1, s2);
		}
	}
	public void vizit(Minus p)
	{
		if(p.getfStang()!= null && p.getfDrept()!= null)
		{
			visit(p.getfStang());
			String s1=this.s;
			visit(p.getfDrept());
			String s2=this.s;
			s=p.concatTermeni(s1, s2);
		}
	}
	public void vizit(Cat p)
	{
		if(p.getfStang()!= null && p.getfDrept()!= null)
		{
			visit(p.getfStang());
			String s1=this.s;
			visit(p.getfDrept());
			String s2=this.s;
			s=p.concatTermeni(s1, s2);
		}
	}
	public void vizit(Necunoscuta n)
	{
		this.s="x";
	}
	public void vizit(Constanta c)
	{
		this.s=Double.toString(c.getCt());
	}
	public void vizit(Sin c)
	{
		vizitare(c);
	}
	
	public void vizit(Cos c)
	{
		vizitare(c);
	}
	public void vizit(Produs p)
	{
		vizitare(p);
	}
	
	public void vizitare(Operator o)
	{
		
	}
	public void vizitare(Functie f)
	{
		
	}

	

	
	@Override
	public void visit(Nod n) {
		// TODO Auto-generated method stub
		
	}
	
	
	
}
